var WebSocket = require('ws');
var clients = [];
var wss = new WebSocket.Server({ port: 8080 });
wss.on('connection', function connection(ws, req) {
  ws.on('message', function incoming(message) {
    ws.send(message + '的长连接建立成功');
    // ws添加cardClient属性，用于标识该客户端是哪个客户端
    let str = message.toString()
    ws.cardClient = str;
    clients.push(ws);//收集用户客户端
  });

  // 监听连接关闭事件
  ws.on('close', function () {
    console.log('连接已关闭');
    // 当客户端断开连接时，从 clients 数组中移除该客户端
    // clients = clients.filter(client => {
    //   console.log(client !== ws)
    //   client !== ws
    // });
    clients.forEach((client, index) => {
      if (client === ws) {
        clients.splice(index, 1); // 从数组中移除指定索引的元素
      }
    })
    console.log(clients.length);
  });
});
// 定义一个函数，用于向特定的客户端发送消息
function sendToClient(client, message) {
  if (client.readyState === WebSocket.OPEN) {
    client.send(message);
  }
}
// 发送消息给特定的客户端
// 假设想给第一个客户端发送消息，可以这样写：
var message = 1;
if (clients.length > 0) {
  sendToClient(clients[0], message);
}
module.exports = { wss, clients };